package com.glink.manage.service;

import com.glink.common.exception.GeneralSimpleException;
import com.glink.manage.dto.view.ConstructionStatusDTO;
import com.glink.manage.dto.view.SitePersonPageDTO;
import com.glink.manage.dto.view.SiteWeatherDTO;
import com.glink.manage.vo.attendance.AttendanceProjectStatisticsVO;
import com.glink.manage.vo.view.*;

import java.util.List;

/**
 * @author  lumm
 * @since  2025-01-21
 */
public interface InformationOverviewService {
    /**
     * 根据施工现场ID查询参建单位的人员今日出勤、培训合格、特种作业信息
     * @param dto 施工现场ID
     * @return 参建单位的人员今日出勤、培训合格、特种作业信息
     */
    List<ParticipatingUnitVO> queryOnSitePagePersonnelById(SitePersonPageDTO dto) throws GeneralSimpleException ;

    /**
     * 根据施工现场ID查询车辆出入信息
     * @param dto 施工现场ID
     * @return 根据施工现场ID查询车辆出入信息
     */
    VehicleAccessInfoVO queryVehicleAccessInfoById(SitePersonPageDTO dto) throws GeneralSimpleException ;

    /**
     * 查询当前用户组织权限下的工程概况信息
     * @return 工程概况信息
     */
    List<ConstructionWorkInfoVO> queryProjectInfo() throws GeneralSimpleException ;

    /**
     * 查询当前用户组织权限下的工程列表信息
     * @return 工程列表信息
     */
    List<ConstructionWorkListVO> queryProjectList( ConstructionStatusDTO constructionStatusDTO) throws GeneralSimpleException ;

    /**
     * 查询考勤统计信息
     * @return 考勤统计信息
     */
    List<AttendanceProjectStatisticsVO> queryAttendanceTally() throws GeneralSimpleException ;

    /**
     * 查询当日告警信息
     * @return 查询当日告警信息
     */
    List<AlarmInfoVO> queryAlarmInfoToday() throws GeneralSimpleException ;


//    /**
//     * 查询工程下的告警信息
//     * @return 查询工程下的告警信息
//     */
//    List<AlarmInfoListVO> queryAlarmInfoByWorkId(String workId) throws GeneralSimpleException ;

    /**
     * 查询天气
     * @param dto 查询条件
     * @return 天气信息
     */
    SiteWeatherVO queryWeather(SiteWeatherDTO dto);
}
